O objetivo deste trabalho é comparar os Perfis do Eleitorado dos estados de Santa Catarina e Espírito Santo. Os dados utilizados foram obtidos no site do TSE, acessível neste link.

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Carga dos Dados

Estado: Espírito Santo

dados_eleitorado_es <- read_delim(file = "data/eleitorado/es/perfil_eleitor_secao_ATUAL_ES.csv",
                                 delim = ";",
                                 locale = locale("pt", decimal_mark = ",", encoding = "Latin1"))
## Rows: 1571604 Columns: 30
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr  (12): DT_GERACAO, SG_UF, NM_MUNICIPIO, NM_LOCAL_VOTACAO, DS_GENERO, DS_...
## dbl  (17): ANO_ELEICAO, CD_MUNICIPIO, NR_ZONA, NR_SECAO, NR_LOCAL_VOTACAO, C...
## time  (1): HH_GERACAO
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
dados_eleitorado_es
dim_dados <- dim(dados_eleitorado_es)
celulas_com_dados = sum(!is.na(dados_eleitorado_es))

print(paste("Número de Linhas: ", dim_dados[1]))
## [1] "Número de Linhas:  1571604"
print(paste("Número de Colunas: ", dim_dados[2]))
## [1] "Número de Colunas:  30"
print(paste("Número de Células com Dados: ", celulas_com_dados))
## [1] "Número de Células com Dados:  47148120"

Estado: Santa Catarina

dados_eleitorado_sc <- read_delim(file = "data/eleitorado/sc/perfil_eleitor_secao_ATUAL_SC.csv",
                                 delim = ";",
                                 locale = locale("pt", decimal_mark = ",", encoding = "Latin1"))
## Rows: 2977591 Columns: 30
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr  (12): DT_GERACAO, SG_UF, NM_MUNICIPIO, NM_LOCAL_VOTACAO, DS_GENERO, DS_...
## dbl  (17): ANO_ELEICAO, CD_MUNICIPIO, NR_ZONA, NR_SECAO, NR_LOCAL_VOTACAO, C...
## time  (1): HH_GERACAO
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
dados_eleitorado_sc
dim_dados <- dim(dados_eleitorado_sc)
celulas_com_dados = sum(!is.na(dados_eleitorado_sc))

print(paste("Número de Linhas: ", dim_dados[1]))
## [1] "Número de Linhas:  2977591"
print(paste("Número de Colunas: ", dim_dados[2]))
## [1] "Número de Colunas:  30"
print(paste("Número de Células com Dados: ", celulas_com_dados))
## [1] "Número de Células com Dados:  89327730"

Transformações

Seleção de Colunas

colunas_interesse <- c("NM_MUNICIPIO", "CD_GENERO", "DS_GENERO", 
                       "CD_ESTADO_CIVIL", "DS_ESTADO_CIVIL", 
                       "CD_FAIXA_ETARIA", "DS_FAIXA_ETARIA", 
                       "CD_GRAU_ESCOLARIDADE", "DS_GRAU_ESCOLARIDADE", 
                       "QT_ELEITORES_PERFIL")

dados_selecionados_es <- select(dados_eleitorado_es, all_of(colunas_interesse))
dados_selecionados_sc <- select(dados_eleitorado_sc, all_of(colunas_interesse))
print(paste("Espírito Santo - Número de Células com Dados Após Seleção: ", sum(!is.na(dados_selecionados_es))))
## [1] "Espírito Santo - Número de Células com Dados Após Seleção:  15716040"
print(paste("Santa Catarina - Número de Células com Dados Após Seleção: ", sum(!is.na(dados_selecionados_sc))))
## [1] "Santa Catarina - Número de Células com Dados Após Seleção:  29775910"

Filtragem dos Dados

dados_filtrados_es <- filter(dados_selecionados_es, 
                          DS_FAIXA_ETARIA != "Inválido", 
                          NM_MUNICIPIO != "NÃO INFORMADO",
                          DS_GENERO != "NÃO INFORMADO",
                          DS_ESTADO_CIVIL != "NÃO INFORMADO",
                          DS_GRAU_ESCOLARIDADE != "NÃO INFORMADO")

dados_filtrados_sc <- filter(dados_selecionados_sc, 
                          DS_FAIXA_ETARIA != "Inválido", 
                          NM_MUNICIPIO != "NÃO INFORMADO",
                          DS_GENERO != "NÃO INFORMADO",
                          DS_ESTADO_CIVIL != "NÃO INFORMADO",
                          DS_GRAU_ESCOLARIDADE != "NÃO INFORMADO")
cat("Espírito Santo:\n\n")
## Espírito Santo:
print(paste("Número de Linhas Após Transformações: ", dim(dados_filtrados_es)[1]))
## [1] "Número de Linhas Após Transformações:  1568860"
print(paste("Número de Colunas Após Transformações: ", dim(dados_filtrados_es)[2]))
## [1] "Número de Colunas Após Transformações:  10"
print(paste("Número de Células com Dados Após Transformações: ", sum(!is.na(dados_filtrados_es))))
## [1] "Número de Células com Dados Após Transformações:  15688600"
cat("\n\nSanta Catarina:\n\n")
## 
## 
## Santa Catarina:
print(paste("Número de Linhas Após Transformações: ", dim(dados_filtrados_sc)[1]))
## [1] "Número de Linhas Após Transformações:  2977286"
print(paste("Número de Colunas Após Transformações: ", dim(dados_filtrados_sc)[2]))
## [1] "Número de Colunas Após Transformações:  10"
print(paste("Número de Células com Dados Após Transformações: ", sum(!is.na(dados_filtrados_sc))))
## [1] "Número de Células com Dados Após Transformações:  29772860"

Análises dos Dados

Seleções de linhas que atendam critérios específicos

criterios_es <- filter(dados_filtrados_es, 
                     DS_GENERO == "MASCULINO", 
                     DS_FAIXA_ETARIA == "35 a 39 anos", 
                     DS_ESTADO_CIVIL == "CASADO", 
                     DS_GRAU_ESCOLARIDADE == "ENSINO MÉDIO COMPLETO")

total_eleitores_criterios_es <- sum(criterios_es$QT_ELEITORES_PERFIL)
total_eleitores_geral_es <- sum(dados_filtrados_es$QT_ELEITORES_PERFIL)
percentagem_es <- round((total_eleitores_criterios_es / total_eleitores_geral_es) * 100, 2)

cat("Espírito Santo: \n\n")
## Espírito Santo:
cat("Critério: Homens Casados de 35 a 39 anos com Ensino Médio Completo\n\n")
## Critério: Homens Casados de 35 a 39 anos com Ensino Médio Completo
print(paste("Número de Eleitores que Atendem ao Critério: ", total_eleitores_criterios_es))
## [1] "Número de Eleitores que Atendem ao Critério:  15211"
print(paste("Número Total de Eleitores: ", total_eleitores_geral_es))
## [1] "Número Total de Eleitores:  2992116"
print(paste("O critério escolhido representa ", percentagem_es, "% dos eleitores do Espírito Santo."))
## [1] "O critério escolhido representa  0.51 % dos eleitores do Espírito Santo."
criterios_sc <- filter(dados_filtrados_sc, 
                     DS_GENERO == "MASCULINO", 
                     DS_FAIXA_ETARIA == "35 a 39 anos", 
                     DS_ESTADO_CIVIL == "CASADO", 
                     DS_GRAU_ESCOLARIDADE == "ENSINO MÉDIO COMPLETO")

total_eleitores_criterios_sc <- sum(criterios_sc$QT_ELEITORES_PERFIL)
total_eleitores_geral_sc <- sum(dados_filtrados_sc$QT_ELEITORES_PERFIL)
percentagem_sc <- round((total_eleitores_criterios_sc / total_eleitores_geral_sc) * 100, 2)

cat("Santa Catarina: \n\n")
## Santa Catarina:
cat("Critério: Homens Casados de 35 a 39 anos com Ensino Médio Completo\n\n")
## Critério: Homens Casados de 35 a 39 anos com Ensino Médio Completo
print(paste("Número de Eleitores que Atendem ao Critério: ", total_eleitores_criterios_sc))
## [1] "Número de Eleitores que Atendem ao Critério:  29706"
print(paste("Número Total de Eleitores: ", total_eleitores_geral_sc))
## [1] "Número Total de Eleitores:  5628787"
print(paste("O critério escolhido representa ", percentagem_sc, "% dos eleitores de Santa Catarina."))
## [1] "O critério escolhido representa  0.53 % dos eleitores de Santa Catarina."

Tabelas com as contagens de eleitores por cada atributo categórico

Eleitores por gênero

# Calcular total de eleitores por gênero no ES
contagem_genero_es <- dados_filtrados_es %>%
  group_by(DS_GENERO) %>%
  summarise(TOTAL_ELEITORES_ES = sum(QT_ELEITORES_PERFIL, na.rm = TRUE))

# Calcular total de eleitores por gênero no SC
contagem_genero_sc <- dados_filtrados_sc %>%
  group_by(DS_GENERO) %>%
  summarise(TOTAL_ELEITORES_SC = sum(QT_ELEITORES_PERFIL, na.rm = TRUE))

contagem_genero <- full_join(contagem_genero_es, contagem_genero_sc, by = "DS_GENERO")

print(contagem_genero)
## # A tibble: 2 × 3
##   DS_GENERO TOTAL_ELEITORES_ES TOTAL_ELEITORES_SC
##   <chr>                  <dbl>              <dbl>
## 1 FEMININO             1568263            2921782
## 2 MASCULINO            1423853            2707005
ggplot(contagem_genero, aes(x = DS_GENERO, y = TOTAL_ELEITORES_ES, fill = DS_GENERO)) +
  geom_bar(stat = "identity") +
  labs(title = "Total de Eleitores por Gênero em ES", 
       x = "Gênero", 
       y = "Total de Eleitores") +
  theme_minimal()

ggplot(contagem_genero, aes(x = DS_GENERO, y = TOTAL_ELEITORES_SC, fill = DS_GENERO)) +
  geom_bar(stat = "identity") +
  labs(title = "Total de Eleitores por Gênero em SC", 
       x = "Gênero", 
       y = "Total de Eleitores") +
  theme_minimal()

Eleitores por gênero e faixa etária

contagem_genero_idade_es <- dados_filtrados_es %>%
  group_by(DS_GENERO, DS_FAIXA_ETARIA) %>%
  summarise(TOTAL_ELEITORES_ES = sum(QT_ELEITORES_PERFIL)) %>%
  arrange(DS_GENERO, DS_FAIXA_ETARIA)
## `summarise()` has grouped output by 'DS_GENERO'. You can override using the
## `.groups` argument.
contagem_genero_idade_sc <- dados_filtrados_sc %>%
  group_by(DS_GENERO, DS_FAIXA_ETARIA) %>%
  summarise(TOTAL_ELEITORES_SC = sum(QT_ELEITORES_PERFIL)) %>%
  arrange(DS_GENERO, DS_FAIXA_ETARIA)
## `summarise()` has grouped output by 'DS_GENERO'. You can override using the
## `.groups` argument.
contagem_genero_idade <- full_join(contagem_genero_idade_es, contagem_genero_idade_sc, by = c("DS_GENERO", "DS_FAIXA_ETARIA"))

print(contagem_genero_idade)
## # A tibble: 44 × 4
## # Groups:   DS_GENERO [2]
##    DS_GENERO DS_FAIXA_ETARIA  TOTAL_ELEITORES_ES TOTAL_ELEITORES_SC
##    <chr>     <chr>                         <dbl>              <dbl>
##  1 FEMININO  100 anos ou mais               1224               2622
##  2 FEMININO  16 anos                        3832               7425
##  3 FEMININO  17 anos                        7265              13132
##  4 FEMININO  18 anos                       15510              29213
##  5 FEMININO  19 anos                       19992              37179
##  6 FEMININO  20 anos                       22886              42353
##  7 FEMININO  21 a 24 anos                 104985             192207
##  8 FEMININO  25 a 29 anos                 150962             284522
##  9 FEMININO  30 a 34 anos                 148525             294015
## 10 FEMININO  35 a 39 anos                 161961             301290
## # ℹ 34 more rows
ggplot(contagem_genero_idade, aes(x = DS_FAIXA_ETARIA, y = TOTAL_ELEITORES_ES, fill = DS_GENERO)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Eleitores por Gênero e Faixa Etária em ES", 
       x = "Faixa Etária", 
       y = "Total de Eleitores", 
       fill = "Gênero") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

ggplot(contagem_genero_idade, aes(x = DS_FAIXA_ETARIA, y = TOTAL_ELEITORES_SC, fill = DS_GENERO)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Eleitores por Gênero e Faixa Etária em SC", 
       x = "Faixa Etária", 
       y = "Total de Eleitores", 
       fill = "Gênero") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

ggplot(contagem_genero_idade, aes(x = DS_FAIXA_ETARIA, y = DS_GENERO, fill = TOTAL_ELEITORES_ES)) +
  geom_tile() +
  labs(title = "Mapa de Calor: Eleitores por Gênero e Faixa Etária em ES", 
       x = "Faixa Etária", 
       y = "Gênero", 
       fill = "Total de Eleitores") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

ggplot(contagem_genero_idade, aes(x = DS_FAIXA_ETARIA, y = DS_GENERO, fill = TOTAL_ELEITORES_SC)) +
  geom_tile() +
  labs(title = "Mapa de Calor: Eleitores por Gênero e Faixa Etária em SC", 
       x = "Faixa Etária", 
       y = "Gênero", 
       fill = "Total de Eleitores") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Eleitores por município

eleitores_por_municipio_es <- dados_filtrados_es %>%
  group_by(NM_MUNICIPIO) %>%
  summarise(TOTAL_ELEITORES_ES = sum(QT_ELEITORES_PERFIL, na.rm = TRUE))

print(eleitores_por_municipio_es)
## # A tibble: 78 × 2
##    NM_MUNICIPIO           TOTAL_ELEITORES_ES
##    <chr>                               <dbl>
##  1 AFONSO CLÁUDIO                      25913
##  2 ALEGRE                              24139
##  3 ALFREDO CHAVES                      12803
##  4 ALTO RIO NOVO                        6735
##  5 ANCHIETA                            24507
##  6 APIACÁ                               6588
##  7 ARACRUZ                             74932
##  8 ATÍLIO VIVÁCQUA                      9351
##  9 BAIXO GUANDU                        25343
## 10 BARRA DE SÃO FRANCISCO              34547
## # ℹ 68 more rows
eleitores_por_municipio_sc <- dados_filtrados_sc %>%
  group_by(NM_MUNICIPIO) %>%
  summarise(TOTAL_ELEITORES_SC = sum(QT_ELEITORES_PERFIL, na.rm = TRUE))

print(eleitores_por_municipio_sc)
## # A tibble: 295 × 2
##    NM_MUNICIPIO    TOTAL_ELEITORES_SC
##    <chr>                        <dbl>
##  1 ABDON BATISTA                 2649
##  2 ABELARDO LUZ                 12795
##  3 AGROLÂNDIA                    8121
##  4 AGRONÔMICA                    4467
##  5 ALFREDO WAGNER                8025
##  6 ALTO BELA VISTA               1773
##  7 ANCHIETA                      5050
##  8 ANGELINA                      5063
##  9 ANITA GARIBALDI               6912
## 10 ANITÁPOLIS                    3302
## # ℹ 285 more rows

Eleitores por estado civil

eleitores_por_estado_civil_es <- dados_filtrados_es %>%
  group_by(DS_ESTADO_CIVIL) %>%
  summarise(TOTAL_ELEITORES_ES = sum(QT_ELEITORES_PERFIL))

eleitores_por_estado_civil_sc <- dados_filtrados_sc %>%
  group_by(DS_ESTADO_CIVIL) %>%
  summarise(TOTAL_ELEITORES_SC = sum(QT_ELEITORES_PERFIL))

eleitores_por_estado_civil <- full_join(eleitores_por_estado_civil_es, eleitores_por_estado_civil_sc, by = "DS_ESTADO_CIVIL")

print(eleitores_por_estado_civil)
## # A tibble: 5 × 3
##   DS_ESTADO_CIVIL        TOTAL_ELEITORES_ES TOTAL_ELEITORES_SC
##   <chr>                               <dbl>              <dbl>
## 1 CASADO                            1089454            2089895
## 2 DIVORCIADO                         140305             259425
## 3 SEPARADO JUDICIALMENTE              26854              92766
## 4 SOLTEIRO                          1667531            3036985
## 5 VIÚVO                               67972             149716

Eleitores por escolaridade

eleitores_por_escolaridade_es <- dados_filtrados_es %>%
  group_by(DS_GRAU_ESCOLARIDADE) %>%
  summarise(TOTAL_ELEITORES_ES = sum(QT_ELEITORES_PERFIL))

eleitores_por_escolaridade_sc <- dados_filtrados_sc %>%
  group_by(DS_GRAU_ESCOLARIDADE) %>%
  summarise(TOTAL_ELEITORES_SC = sum(QT_ELEITORES_PERFIL))

eleitores_por_escolaridade <- full_join(eleitores_por_escolaridade_es, eleitores_por_escolaridade_sc, by = "DS_GRAU_ESCOLARIDADE")

print(eleitores_por_escolaridade)
## # A tibble: 8 × 3
##   DS_GRAU_ESCOLARIDADE          TOTAL_ELEITORES_ES TOTAL_ELEITORES_SC
##   <chr>                                      <dbl>              <dbl>
## 1 ANALFABETO                                100021              64280
## 2 ENSINO FUNDAMENTAL COMPLETO               209604             523586
## 3 ENSINO FUNDAMENTAL INCOMPLETO             739409            1248805
## 4 ENSINO MÉDIO COMPLETO                     768580            1506140
## 5 ENSINO MÉDIO INCOMPLETO                   555193             872793
## 6 LÊ E ESCREVE                              170152             170304
## 7 SUPERIOR COMPLETO                         310899             811247
## 8 SUPERIOR INCOMPLETO                       138258             431632

Estatísticas Básicas

Os datasets de Eleitorado são predominantemente formados por colunas categóricas, e portanto é difícil fazer análises estatísticas nesses dados. Sendo assim, aqui fizemos algumas análises voltadas especificamente para os municípios de cada estado, como por exemplo a média de eleitores ao longo dos municípios, o número máximo e mínimo de eleitores em um município, dentre outros.

estatisticas_es <- eleitores_por_municipio_es %>%
  summarise(
    media_eleitores = mean(TOTAL_ELEITORES_ES, na.rm = TRUE),
    mediana_eleitores = median(TOTAL_ELEITORES_ES, na.rm = TRUE),
    max_eleitores = max(TOTAL_ELEITORES_ES, na.rm = TRUE),
    min_eleitores = min(TOTAL_ELEITORES_ES, na.rm = TRUE),
    desvio_padrao = sd(TOTAL_ELEITORES_ES, na.rm = TRUE)
  ) %>%
  mutate(estado = "ES")

estatisticas_sc <- eleitores_por_municipio_sc %>%
  summarise(
    media_eleitores = mean(TOTAL_ELEITORES_SC, na.rm = TRUE),
    mediana_eleitores = median(TOTAL_ELEITORES_SC, na.rm = TRUE),
    max_eleitores = max(TOTAL_ELEITORES_SC, na.rm = TRUE),
    min_eleitores = min(TOTAL_ELEITORES_SC, na.rm = TRUE),
    desvio_padrao = sd(TOTAL_ELEITORES_SC, na.rm = TRUE)
  ) %>%
  mutate(estado = "SC")

estatisticas <- bind_rows(estatisticas_es, estatisticas_sc)

print(estatisticas)
## # A tibble: 2 × 6
##   media_eleitores mediana_eleitores max_eleitores min_eleitores desvio_padrao
##             <dbl>             <dbl>         <dbl>         <dbl>         <dbl>
## 1          38360.            15562.        361362          4947        69499.
## 2          19081.             6692         433953          1534        45074.
## # ℹ 1 more variable: estado <chr>

Respostas as Perguntas Sugeridas

Aqui serão calculadas as respostas para as perguntas sugeridas no trabalho, para os dois estados considerados. São elas:

  • Qual o município com menos eleitores?
  • Qual o município com mais eleitores, depois da capital?
  • Qual a faixa de variação da quantidade de eleitores por município?
  • Qual a faixa de variação da quantidade de eleitores por gênero?

Estado: Espírito Santo

mn_menos_eleitores_es <- eleitores_por_municipio_es %>%
  filter(TOTAL_ELEITORES_ES == min(TOTAL_ELEITORES_ES, na.rm = TRUE))

print(paste("O município do Espírito Santo com menos eleitores é", 
            mn_menos_eleitores_es$NM_MUNICIPIO, 
            ", com um total de", 
            mn_menos_eleitores_es$TOTAL_ELEITORES_ES, 
            "eleitores."))
## [1] "O município do Espírito Santo com menos eleitores é DIVINO DE SÃO LOURENÇO , com um total de 4947 eleitores."
capital_es <- "VITÓRIA"

mn_mais_eleitores_es <- eleitores_por_municipio_es %>%
  filter(NM_MUNICIPIO != capital_es) %>%
  arrange(desc(TOTAL_ELEITORES_ES)) %>%
  slice(1)

print(paste("O município do Espírito Santo com mais eleitores excluindo a capital é", 
            mn_mais_eleitores_es$NM_MUNICIPIO, 
            ", com um total de", 
            mn_mais_eleitores_es$TOTAL_ELEITORES_ES, 
            "eleitores."))
## [1] "O município do Espírito Santo com mais eleitores excluindo a capital é SERRA , com um total de 361362 eleitores."
print("Nota: A capital do Espírito Santo não é o município com mais eleitores do estado.")
## [1] "Nota: A capital do Espírito Santo não é o município com mais eleitores do estado."
variacao_municipios_es <- eleitores_por_municipio_es %>%
  summarise(
    faixa_variacao = max(TOTAL_ELEITORES_ES, na.rm = TRUE) - min(TOTAL_ELEITORES_ES, na.rm = TRUE),
  )

print(paste("A faixa de variação da quantidade de eleitores por município em Espírito Santo é", 
            variacao_municipios_es$faixa_variacao))
## [1] "A faixa de variação da quantidade de eleitores por município em Espírito Santo é 356415"
variacao_genero_es <- contagem_genero_es %>%
  summarise(
    faixa_variacao = max(TOTAL_ELEITORES_ES, na.rm = TRUE) - min(TOTAL_ELEITORES_ES, na.rm = TRUE)
  )

print(paste("A faixa de variação da quantidade de eleitores por gênero em Espírito Santo é", 
            variacao_genero_es$faixa_variacao))
## [1] "A faixa de variação da quantidade de eleitores por gênero em Espírito Santo é 144410"

Estado: Santa Catarina

mn_menos_eleitores_sc <- eleitores_por_municipio_sc %>%
  filter(TOTAL_ELEITORES_SC == min(TOTAL_ELEITORES_SC, na.rm = TRUE))

print(paste("O município de Santa Catarina com menos eleitores é", 
            mn_menos_eleitores_sc$NM_MUNICIPIO, 
            ", com um total de", 
            mn_menos_eleitores_sc$TOTAL_ELEITORES_SC, 
            "eleitores."))
## [1] "O município de Santa Catarina com menos eleitores é SANTIAGO DO SUL , com um total de 1534 eleitores."
capital_sc <- "FLORIANÓPOLIS"

mn_mais_eleitores_sc <- eleitores_por_municipio_sc %>%
  filter(NM_MUNICIPIO != capital_sc) %>%
  arrange(desc(TOTAL_ELEITORES_SC)) %>%
  slice(1)

print(paste("O município do Santa Catarina com mais eleitores excluindo a capital é", 
            mn_mais_eleitores_sc$NM_MUNICIPIO, 
            ", com um total de", 
            mn_mais_eleitores_sc$TOTAL_ELEITORES_SC, 
            "eleitores."))
## [1] "O município do Santa Catarina com mais eleitores excluindo a capital é JOINVILLE , com um total de 433953 eleitores."
print("Nota: A capital de Santa Catarina não é o município com mais eleitores do estado.")
## [1] "Nota: A capital de Santa Catarina não é o município com mais eleitores do estado."
variacao_municipios_sc <- eleitores_por_municipio_sc %>%
  summarise(
    faixa_variacao = max(TOTAL_ELEITORES_SC, na.rm = TRUE) - min(TOTAL_ELEITORES_SC, na.rm = TRUE),
  )

print(paste("A faixa de variação da quantidade de eleitores por município em Santa Catarina é", 
            variacao_municipios_sc$faixa_variacao))
## [1] "A faixa de variação da quantidade de eleitores por município em Santa Catarina é 432419"
variacao_genero_sc <- contagem_genero_sc %>%
  summarise(
    faixa_variacao = max(TOTAL_ELEITORES_SC, na.rm = TRUE) - min(TOTAL_ELEITORES_SC, na.rm = TRUE)
  )

print(paste("A faixa de variação da quantidade de eleitores por gênero em Santa Catarina é", 
            variacao_genero_sc$faixa_variacao))
## [1] "A faixa de variação da quantidade de eleitores por gênero em Santa Catarina é 214777"